1. Field of the Present Invention
The present invention generally relates to the field of data processing networks and more particularly to a system and method for incorporating distributed shared memory into a cluster of server appliances to improve performance.
2. History of Related Art
In the field of data processing networks, the emergence of networked storage has produced in an increase in the number of web-based application services implemented as a farm or cluster of diskless servers (also referred to herein as thin servers). In such an environment, the application service executes on a diskless device while content, programming, and data are stored on a distributed set of disks, which are themselves attached to specialized thin servers dedicated to disk block, file, and data base service. While such systems may reduce overall network cost by optimizing disk resources, they may also result in degraded performance in comparison to more traditional arrangements in which each server executing application subsystems includes one or more local disks on which the appropriate programs and data are stored. It would therefore be desirable to implement a diskless-based server cluster performance characteristics that is competitive with disk based systems. It would be further desirable if the invention did not substantially increase the hardware required to implement the solution.
The problem identified above is in large part addressed by a network and system in which a cluster of diskless servers employ a distributed shared memory (DSM) abstraction that presents an area of shared memory for two or more servers in the cluster. By providing the appearance of an area of shared memory between two or more servers in the cluster, the invention potentially improves performance by reducing or eliminating the disk latency associated with conventional server-cluster designs. The DSM abstraction may be dynamically alterable such that selectable groups of servers in the cluster share an area of memory temporarily. Server groups that share a memory area may be determined empirically or servers may subscribe to a group reactively in response to client requests. Multiple groups may exist simultaneously and a single server may belong to more than one group. The DSM implementation may be simplified by restricting the types of objects to which the abstraction is applied. In an embodiment suitable for use in many common web server applications, for example, address space sharing may be restricted to read-only objects thereby greatly alleviating coherence/consistency considerations.